package com.itheima.d01_exam.test05;

import java.util.Comparator;
import java.util.TreeSet;

public class Test {
    /*
    定义学生类Student：
            1.属性有姓名name、int类型的物理成绩physic、int类型的化学成绩chemistry
            2.提供空参、带参构造方法
            3.提供getter()、setter()方法
            4.重写toString()方法 测试类中完成：

            1.创建TreeSet集合，用于存储Student对象
            2.实例化5个Student对象，信息已提供如下：
                "爱迪生", 90, 55 "牛顿", 100, 90
                "拉瓦锡", 70, 100 "霍金", 100, 100
                "伽利略", 60, 85 "达尔文", 70, 75
            3.分别将对象添加到集合，并且遍历集合打印所有元素信息
                要求： 1.按照总分从高到低打印（主要条件）
                      2.总分相同的，按照物理成绩从高到低打印（次要条件） 打印结果示例：
     */

    public static void main(String[] args) {
        TreeSet<Student> ts = new TreeSet<>((s1,s2)->{
            double s1Total = s1.getPhysic() + s1.getChemistry();
            double s2Total = s2.getPhysic() + s2.getChemistry();
            if(s1Total != s2Total){
                return Double.compare(s2Total , s1Total);
            }
            return Double.compare(s2.getPhysic() , s1.getPhysic());

        });
        ts.add(new Student("拉瓦锡", 70, 100));
        ts.add(new Student("霍金", 100, 100));
        ts.add(new Student("牛顿", 100, 90));
        ts.add(new Student("达尔文", 70, 75));
        ts.add(new Student("伽利略", 100, 70));

        ts.forEach(student -> System.out.println(student));
    }
}








